{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/nceder/qpb4e/blob/main/code/Chapter%2024/Chapter_24.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 24 Exploring data"
      ],
      "metadata": {
        "id": "8UkBZArVD1j9"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 24.2.2 Installing pandas"
      ],
      "metadata": {
        "id": "RJaBWUd5EKeh"
      }
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "collapsed": true,
        "id": "A_Wjy0ZlsUIk"
      },
      "outputs": [],
      "source": [
        "%matplotlib inline\n",
        "import pandas as pd\n",
        "import numpy as np\n"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 24.2.3 Data frames"
      ],
      "metadata": {
        "id": "S-id3vXvEWkV"
      }
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "metadata": {
        "id": "QUe_-34SsUIk",
        "outputId": "3a1f6ebf-e4cd-4e81-d949-ef4f152ca8ad",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[[1, 2, 3], [4, 5, 6], [7, 8, 9]]\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[[1, 2, 3], [4, 5, 6], [7, 8, 9]]"
            ]
          },
          "metadata": {},
          "execution_count": 2
        }
      ],
      "source": [
        "grid = [[1,2,3], [4,5,6], [7,8,9]]\n",
        "print(grid)\n",
        "\n",
        "[[1, 2, 3], [4, 5, 6], [7, 8, 9]]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {
        "id": "5ynHHqAzsUIk",
        "outputId": "b33bb37c-ec5e-449c-e8f9-3234f1412c54",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "   0  1  2\n",
            "0  1  2  3\n",
            "1  4  5  6\n",
            "2  7  8  9\n"
          ]
        }
      ],
      "source": [
        "import pandas as pd\n",
        "df = pd.DataFrame(grid)\n",
        "print(df)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "metadata": {
        "scrolled": true,
        "id": "FUObiVc_sUIk",
        "outputId": "ae519c89-2e5d-402c-d53e-f263431e9d0a",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "   one  two  three\n",
            "0    1    2      3\n",
            "1    4    5      6\n",
            "2    7    8      9\n"
          ]
        }
      ],
      "source": [
        "df = pd.DataFrame(grid, columns=[\"one\", \"two\", \"three\"] )\n",
        "print(df)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {
        "scrolled": false,
        "id": "JEiCgx7vsUIl",
        "outputId": "4ad3be27-5b15-4348-e264-c2c6077808ca",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "0    2\n",
            "1    5\n",
            "2    8\n",
            "Name: two, dtype: int64\n"
          ]
        }
      ],
      "source": [
        "print(df[\"two\"])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "metadata": {
        "id": "EC4B0gyvsUIl",
        "outputId": "5aee5f0d-efd9-491e-ebdc-4085381951d2",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[2, 5, 8]\n"
          ]
        }
      ],
      "source": [
        "print([x[1] for x in grid])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "id": "t7NqqaugsUIl",
        "outputId": "45517e96-56b1-4bd5-dff5-f9b80c27f1b1",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "2\n",
            "5\n",
            "8\n"
          ]
        }
      ],
      "source": [
        "for x in df[\"two\"]:\n",
        "    print(x)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "metadata": {
        "id": "xokZPklQsUIl",
        "outputId": "8d216592-804d-40aa-f6da-a4ca37565f8b",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "   one  three\n",
            "0    1      3\n",
            "1    4      6\n",
            "2    7      9\n"
          ]
        }
      ],
      "source": [
        "edges = df[[\"one\", \"three\"]]\n",
        "print(edges)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "metadata": {
        "id": "meVRkrsisUIl",
        "outputId": "071dd0c5-90e4-4ad4-80e0-364e564c57ee",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "   one  three\n",
            "0    3      5\n",
            "1    6      8\n",
            "2    9     11\n"
          ]
        }
      ],
      "source": [
        "print(edges.add(2))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "metadata": {
        "id": "xwukk0AMsUIl",
        "outputId": "dd717e17-0d5f-44bf-d5cc-cc6f8a0662c8",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 210
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "two\n",
              "2    1\n",
              "5    1\n",
              "8    1\n",
              "Name: count, dtype: int64"
            ],
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>count</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>two</th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div><br><label><b>dtype:</b> int64</label>"
            ]
          },
          "metadata": {},
          "execution_count": 10
        }
      ],
      "source": [
        "df['two'].value_counts()"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 24.3.1 Loading and saving data with pandas"
      ],
      "metadata": {
        "id": "9M8AM9qjGV-Q"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "!wget https://raw.githubusercontent.com/nceder/qpb4e/main/code/Chapter%2024/mars_data_01.json &> null  && echo mars_data_01.json Downloaded\n",
        "!wget https://raw.githubusercontent.com/nceder/qpb4e/main/code/Chapter%2024/temp_data_01.csv &> null  && echo temp_data_01.csv Downloaded"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "0uu9f4GTP8ym",
        "outputId": "03e41249-d886-4d03-8f1b-807593527048"
      },
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "mars_data_01.json Downloaded\n",
            "temp_data_01.csv Downloaded\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "metadata": {
        "id": "hStKsvFRsUIm",
        "outputId": "ff7222b5-d6e8-4b81-d148-5268c3fa7d4d",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "                                   report\n",
            "terrestrial_date               2017-01-11\n",
            "sol                                  1576\n",
            "ls                                  296.0\n",
            "min_temp                            -72.0\n",
            "min_temp_fahrenheit                 -97.6\n",
            "max_temp                             -1.0\n",
            "max_temp_fahrenheit                  30.2\n",
            "pressure                            869.0\n",
            "pressure_string                    Higher\n",
            "abs_humidity                         None\n",
            "wind_speed                           None\n",
            "wind_direction                         --\n",
            "atmo_opacity                        Sunny\n",
            "season                           Month 10\n",
            "sunrise              2017-01-11T12:31:00Z\n",
            "sunset               2017-01-12T00:46:00Z\n"
          ]
        }
      ],
      "source": [
        "mars = pd.read_json(\"mars_data_01.json\")\n",
        "print(mars)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "metadata": {
        "collapsed": true,
        "id": "0Sp2EaK2sUIm",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "37f627d2-d2f0-41db-e8bf-a04889cb7e7d"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "           4      5    6     7     8      9    10    11    12       13   14  \\\n",
            "0  1979/01/01  17.48  994   6.0  30.5   2.89  994 -13.6  15.8  Missing    0   \n",
            "1  1979/01/02   4.64  994  -6.4  15.8  -9.03  994 -23.6   6.6  Missing    0   \n",
            "2  1979/01/03  11.05  994  -0.7  24.7  -2.17  994 -18.3  12.9  Missing    0   \n",
            "3  1979/01/04   9.51  994   0.2  27.6  -0.43  994 -16.3  16.3  Missing    0   \n",
            "4  1979/05/15  68.42  994  61.0  75.1  51.30  994  43.3  57.0  Missing    0   \n",
            "5  1979/05/16  70.29  994  63.4  73.5  48.09  994  41.1  53.0  Missing    0   \n",
            "6  1979/05/17  75.34  994  64.0  80.5  50.84  994  44.3  55.7    82.60    2   \n",
            "7  1979/05/18  79.13  994  75.5  82.1  55.68  994  50.0  61.1    81.42  349   \n",
            "8  1979/05/19  74.94  994  66.9  83.1  58.59  994  50.9  63.2    82.87   78   \n",
            "\n",
            "        15       16      17  \n",
            "0  Missing  Missing   0.00%  \n",
            "1  Missing  Missing   0.00%  \n",
            "2  Missing  Missing   0.00%  \n",
            "3  Missing  Missing   0.00%  \n",
            "4  Missing  Missing   0.00%  \n",
            "5  Missing  Missing   0.00%  \n",
            "6    82.40    82.80   0.20%  \n",
            "7    80.20    83.40  35.11%  \n",
            "8    81.60    85.20   7.85%  \n"
          ]
        }
      ],
      "source": [
        "temp = pd.read_csv(\"temp_data_01.csv\", header=0, names=range(18), usecols=range(4,18))\n",
        "print(temp)"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "temp = pd.read_csv(\"temp_data_01.csv\", na_values=['Missing'])\n",
        "print(temp)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "W54XLMuXKi9k",
        "outputId": "00529b55-eb41-42ad-bac0-37fdc4dbf7b5"
      },
      "execution_count": 14,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "   Notes     State  State Code Month Day, Year Month Day, Year Code  \\\n",
            "0    NaN  Illinois          17    Jan 01, 1979           1979/01/01   \n",
            "1    NaN  Illinois          17    Jan 02, 1979           1979/01/02   \n",
            "2    NaN  Illinois          17    Jan 03, 1979           1979/01/03   \n",
            "3    NaN  Illinois          17    Jan 04, 1979           1979/01/04   \n",
            "4    NaN  Illinois          17    May 15, 1979           1979/05/15   \n",
            "5    NaN  Illinois          17    May 16, 1979           1979/05/16   \n",
            "6    NaN  Illinois          17    May 17, 1979           1979/05/17   \n",
            "7    NaN  Illinois          17    May 18, 1979           1979/05/18   \n",
            "8    NaN  Illinois          17    May 19, 1979           1979/05/19   \n",
            "\n",
            "   Avg Daily Max Air Temperature (F)  Record Count for Daily Max Air Temp (F)  \\\n",
            "0                              17.48                                      994   \n",
            "1                               4.64                                      994   \n",
            "2                              11.05                                      994   \n",
            "3                               9.51                                      994   \n",
            "4                              68.42                                      994   \n",
            "5                              70.29                                      994   \n",
            "6                              75.34                                      994   \n",
            "7                              79.13                                      994   \n",
            "8                              74.94                                      994   \n",
            "\n",
            "   Min Temp for Daily Max Air Temp (F)  Max Temp for Daily Max Air Temp (F)  \\\n",
            "0                                  6.0                                 30.5   \n",
            "1                                 -6.4                                 15.8   \n",
            "2                                 -0.7                                 24.7   \n",
            "3                                  0.2                                 27.6   \n",
            "4                                 61.0                                 75.1   \n",
            "5                                 63.4                                 73.5   \n",
            "6                                 64.0                                 80.5   \n",
            "7                                 75.5                                 82.1   \n",
            "8                                 66.9                                 83.1   \n",
            "\n",
            "   Avg Daily Min Air Temperature (F)  Record Count for Daily Min Air Temp (F)  \\\n",
            "0                               2.89                                      994   \n",
            "1                              -9.03                                      994   \n",
            "2                              -2.17                                      994   \n",
            "3                              -0.43                                      994   \n",
            "4                              51.30                                      994   \n",
            "5                              48.09                                      994   \n",
            "6                              50.84                                      994   \n",
            "7                              55.68                                      994   \n",
            "8                              58.59                                      994   \n",
            "\n",
            "   Min Temp for Daily Min Air Temp (F)  Max Temp for Daily Min Air Temp (F)  \\\n",
            "0                                -13.6                                 15.8   \n",
            "1                                -23.6                                  6.6   \n",
            "2                                -18.3                                 12.9   \n",
            "3                                -16.3                                 16.3   \n",
            "4                                 43.3                                 57.0   \n",
            "5                                 41.1                                 53.0   \n",
            "6                                 44.3                                 55.7   \n",
            "7                                 50.0                                 61.1   \n",
            "8                                 50.9                                 63.2   \n",
            "\n",
            "   Avg Daily Max Heat Index (F)  Record Count for Daily Max Heat Index (F)  \\\n",
            "0                           NaN                                          0   \n",
            "1                           NaN                                          0   \n",
            "2                           NaN                                          0   \n",
            "3                           NaN                                          0   \n",
            "4                           NaN                                          0   \n",
            "5                           NaN                                          0   \n",
            "6                         82.60                                          2   \n",
            "7                         81.42                                        349   \n",
            "8                         82.87                                         78   \n",
            "\n",
            "   Min for Daily Max Heat Index (F)  Max for Daily Max Heat Index (F)  \\\n",
            "0                               NaN                               NaN   \n",
            "1                               NaN                               NaN   \n",
            "2                               NaN                               NaN   \n",
            "3                               NaN                               NaN   \n",
            "4                               NaN                               NaN   \n",
            "5                               NaN                               NaN   \n",
            "6                              82.4                              82.8   \n",
            "7                              80.2                              83.4   \n",
            "8                              81.6                              85.2   \n",
            "\n",
            "  Daily Max Heat Index (F) % Coverage  \n",
            "0                               0.00%  \n",
            "1                               0.00%  \n",
            "2                               0.00%  \n",
            "3                               0.00%  \n",
            "4                               0.00%  \n",
            "5                               0.00%  \n",
            "6                               0.20%  \n",
            "7                              35.11%  \n",
            "8                               7.85%  \n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Saving data"
      ],
      "metadata": {
        "id": "2fxo2yzTK8jr"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df.to_csv(\"df_out.csv\", index=False)    #A\n",
        "!cat df_out.csv"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "VKUGKizjK5bO",
        "outputId": "b16a02b2-e598-4d22-8819-19e226a38e1d"
      },
      "execution_count": 19,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "one,two,three\n",
            "1,2,3\n",
            "4,5,6\n",
            "7,8,9\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "df.to_json()     #A"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        },
        "id": "ilR-i227LVUt",
        "outputId": "55433f54-711b-49a3-a97e-7e2cf72af011"
      },
      "execution_count": 20,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "'{\"one\":{\"0\":1,\"1\":4,\"2\":7},\"two\":{\"0\":2,\"1\":5,\"2\":8},\"three\":{\"0\":3,\"1\":6,\"2\":9}}'"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            }
          },
          "metadata": {},
          "execution_count": 20
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 24.3.2 Data cleaning with a data frame"
      ],
      "metadata": {
        "id": "BM-9jcizLex2"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "temp = pd.read_csv(\"temp_data_01.csv\", na_values=['Missing'], header=0, names=range(18), usecols=range(4,18))    #A\n",
        "print(temp)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "RVv6RvZwLnP8",
        "outputId": "dedc20e4-d93b-4ee6-da3d-0cf181eee181"
      },
      "execution_count": 21,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "           4      5    6     7     8      9    10    11    12     13   14  \\\n",
            "0  1979/01/01  17.48  994   6.0  30.5   2.89  994 -13.6  15.8    NaN    0   \n",
            "1  1979/01/02   4.64  994  -6.4  15.8  -9.03  994 -23.6   6.6    NaN    0   \n",
            "2  1979/01/03  11.05  994  -0.7  24.7  -2.17  994 -18.3  12.9    NaN    0   \n",
            "3  1979/01/04   9.51  994   0.2  27.6  -0.43  994 -16.3  16.3    NaN    0   \n",
            "4  1979/05/15  68.42  994  61.0  75.1  51.30  994  43.3  57.0    NaN    0   \n",
            "5  1979/05/16  70.29  994  63.4  73.5  48.09  994  41.1  53.0    NaN    0   \n",
            "6  1979/05/17  75.34  994  64.0  80.5  50.84  994  44.3  55.7  82.60    2   \n",
            "7  1979/05/18  79.13  994  75.5  82.1  55.68  994  50.0  61.1  81.42  349   \n",
            "8  1979/05/19  74.94  994  66.9  83.1  58.59  994  50.9  63.2  82.87   78   \n",
            "\n",
            "     15    16      17  \n",
            "0   NaN   NaN   0.00%  \n",
            "1   NaN   NaN   0.00%  \n",
            "2   NaN   NaN   0.00%  \n",
            "3   NaN   NaN   0.00%  \n",
            "4   NaN   NaN   0.00%  \n",
            "5   NaN   NaN   0.00%  \n",
            "6  82.4  82.8   0.20%  \n",
            "7  80.2  83.4  35.11%  \n",
            "8  81.6  85.2   7.85%  \n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 22,
      "metadata": {
        "id": "teRZJPMRsUIm",
        "outputId": "e05a4625-7562-4467-921f-8ad7f3e13f85",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "'0.00%'"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            }
          },
          "metadata": {},
          "execution_count": 22
        }
      ],
      "source": [
        "temp[17][0]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 23,
      "metadata": {
        "scrolled": true,
        "id": "wMkd6FmKsUIm",
        "outputId": "dab49178-2783-4fa0-9c8c-c1a74d145ac4",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "'0.00'"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            }
          },
          "metadata": {},
          "execution_count": 23
        }
      ],
      "source": [
        "temp[17]=temp[17].str.strip(\"%\")\n",
        "temp[17][0]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 24,
      "metadata": {
        "id": "2LPNqkSOsUIn",
        "outputId": "cb59b958-8fb9-465b-e849-c0438a1c6a0f",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.0"
            ]
          },
          "metadata": {},
          "execution_count": 24
        }
      ],
      "source": [
        "temp[17] = pd.to_numeric(temp[17])\n",
        "temp[17][0]"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 25,
      "metadata": {
        "id": "LbRWZJnOsUIn",
        "outputId": "eef4f536-2416-43e2-de11-6b85d8cd6f8e",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 366
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0    0.0000\n",
              "1    0.0000\n",
              "2    0.0000\n",
              "3    0.0000\n",
              "4    0.0000\n",
              "5    0.0000\n",
              "6    0.0020\n",
              "7    0.3511\n",
              "8    0.0785\n",
              "Name: 17, dtype: float64"
            ],
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>17</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>0.0000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>0.0000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>0.0000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>0.0000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>0.0000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>0.0000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>0.0020</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>0.3511</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>0.0785</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div><br><label><b>dtype:</b> float64</label>"
            ]
          },
          "metadata": {},
          "execution_count": 25
        }
      ],
      "source": [
        "temp[17] = temp[17].div(100)\n",
        "temp[17]"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Try this: Cleaning Data with and without pandas\n",
        "Experiment with the operations. When the final column has been converted to a fraction, can you think of a way to convert it back to a string with the trailing percentage sign?\n",
        "\n",
        "By contrast, load the same data into a plain Python list by using the `csv` module, and apply the same changes by using plain Python.\n"
      ],
      "metadata": {
        "id": "7rZrQtMm90HC"
      }
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "dxmU0syr-EwD"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 24.4. 1 Merging data frames"
      ],
      "metadata": {
        "id": "GYpKFHrEMJL8"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "!wget https://raw.githubusercontent.com/nceder/qpb4e/main/code/Chapter%2024/sales_calls.csv &> null  && echo sales_calls.csv Downloaded\n",
        "!wget https://raw.githubusercontent.com/nceder/qpb4e/main/code/Chapter%2024/sales_revenue.csv &> null  && echo sales_revenue.csv Downloaded"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "sEwUPn4CM2c7",
        "outputId": "5f548dea-fe27-4683-fa45-3036c5060eb1"
      },
      "execution_count": 26,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "sales_calls.csv Downloaded\n",
            "sales_revenue.csv Downloaded\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 27,
      "metadata": {
        "id": "RpXNMf_ksUIn",
        "outputId": "1b707feb-1fcf-479b-c14e-14d3134e3001",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "   Team member  Territory  Month  Calls\n",
            "0        Jorge          3      1    107\n",
            "1        Jorge          3      2     88\n",
            "2        Jorge          3      3     84\n",
            "3        Jorge          3      4    113\n",
            "4          Ana          1      1     91\n",
            "5          Ana          1      2    129\n",
            "6          Ana          1      3     96\n",
            "7          Ana          1      4    128\n",
            "8          Ali          2      1    120\n",
            "9          Ali          2      2     85\n",
            "10         Ali          2      3     87\n",
            "11         Ali          2      4     87\n"
          ]
        }
      ],
      "source": [
        "calls = pd.read_csv(\"sales_calls.csv\")\n",
        "print(calls)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 28,
      "metadata": {
        "id": "FXfjO7ITsUIn",
        "outputId": "b1843a06-19ee-4d4e-a65c-12c89c8afea4",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "    Territory  Month  Amount\n",
            "0           1      1   54228\n",
            "1           1      2   61640\n",
            "2           1      3   43491\n",
            "3           1      4   52173\n",
            "4           2      1   36061\n",
            "5           2      2   44957\n",
            "6           2      3   35058\n",
            "7           2      4   33855\n",
            "8           3      1   50876\n",
            "9           3      2   57682\n",
            "10          3      3   53689\n",
            "11          3      4   49173\n"
          ]
        }
      ],
      "source": [
        "revenue = pd.read_csv(\"sales_revenue.csv\")\n",
        "print(revenue)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 29,
      "metadata": {
        "id": "l_7oZnovsUIn",
        "outputId": "836fe9bb-945f-4548-df33-080b9c4832b6",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "   Team member  Territory  Month  Calls  Amount\n",
            "0        Jorge          3      1    107   50876\n",
            "1        Jorge          3      2     88   57682\n",
            "2        Jorge          3      3     84   53689\n",
            "3        Jorge          3      4    113   49173\n",
            "4          Ana          1      1     91   54228\n",
            "5          Ana          1      2    129   61640\n",
            "6          Ana          1      3     96   43491\n",
            "7          Ana          1      4    128   52173\n",
            "8          Ali          2      1    120   36061\n",
            "9          Ali          2      2     85   44957\n",
            "10         Ali          2      3     87   35058\n",
            "11         Ali          2      4     87   33855\n"
          ]
        }
      ],
      "source": [
        "calls_revenue = pd.merge(calls, revenue, on=['Territory', 'Month'])\n",
        "print(calls_revenue)"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Quick Check: Merging data sets\n",
        "How would you go about merging two data sets like the ones in the Python example?\n",
        "\n",
        "#### Discussion\n",
        "\n",
        "f you're sure that you have exactly the same number of items in each set and that the items are in the right order, you could use the `zip()` function. Otherwise, you could create a dictionary, with the keys being something common between the two data sets, and then append the date by key from both sets."
      ],
      "metadata": {
        "id": "ISZLXcwP_HXU"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 24.4.2 Selecting data"
      ],
      "metadata": {
        "id": "JfqYVKKjNdv_"
      }
    },
    {
      "cell_type": "code",
      "execution_count": 30,
      "metadata": {
        "scrolled": true,
        "id": "MMtNXlE5sUIn",
        "outputId": "1a814c96-c2bf-411c-83fc-6c71a3b44a2f",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "  Team member  Territory  Month  Calls  Amount\n",
            "0       Jorge          3      1    107   50876\n",
            "1       Jorge          3      2     88   57682\n",
            "2       Jorge          3      3     84   53689\n",
            "3       Jorge          3      4    113   49173\n"
          ]
        }
      ],
      "source": [
        "print(calls_revenue[calls_revenue.Territory==3])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 31,
      "metadata": {
        "scrolled": true,
        "id": "FRm7_hPpsUIo",
        "outputId": "6c787037-c1f6-4224-de92-0e0f2a44d53b",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "  Team member  Territory  Month  Calls  Amount\n",
            "1       Jorge          3      2     88   57682\n",
            "2       Jorge          3      3     84   53689\n",
            "4         Ana          1      1     91   54228\n",
            "9         Ali          2      2     85   44957\n"
          ]
        }
      ],
      "source": [
        "print(calls_revenue[calls_revenue.Amount/calls_revenue.Calls>500])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 32,
      "metadata": {
        "id": "DdAeGyohsUIo",
        "outputId": "94dc9a2f-293b-4f96-d12c-ad790a0f171a",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "   Team member  Territory  Month  Calls  Amount  Call_Amount\n",
            "0        Jorge          3      1    107   50876   475.476636\n",
            "1        Jorge          3      2     88   57682   655.477273\n",
            "2        Jorge          3      3     84   53689   639.154762\n",
            "3        Jorge          3      4    113   49173   435.159292\n",
            "4          Ana          1      1     91   54228   595.912088\n",
            "5          Ana          1      2    129   61640   477.829457\n",
            "6          Ana          1      3     96   43491   453.031250\n",
            "7          Ana          1      4    128   52173   407.601562\n",
            "8          Ali          2      1    120   36061   300.508333\n",
            "9          Ali          2      2     85   44957   528.905882\n",
            "10         Ali          2      3     87   35058   402.965517\n",
            "11         Ali          2      4     87   33855   389.137931\n"
          ]
        }
      ],
      "source": [
        "calls_revenue['Call_Amount'] = calls_revenue.Amount/calls_revenue.Calls\n",
        "print(calls_revenue)"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Quick Check: Selecting in Python\n",
        "What Python code structure would you use to select only rows meeting certain conditions?\n",
        "\n",
        "#### Solution\n",
        "\n",
        "You’d probably use a list comprehension:\n",
        "\n",
        "`selected = [x for x in old_list if <x meets selection criteria>]`"
      ],
      "metadata": {
        "id": "iUXyEpHR-ygS"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 24.4.3 Grouping and aggregation"
      ],
      "metadata": {
        "id": "RAKb3Ax2NsHo"
      }
    },
    {
      "cell_type": "code",
      "execution_count": 37,
      "metadata": {
        "id": "aSw6iKYfsUIo",
        "outputId": "ad792d30-fd62-4e8a-c780-9ac26fd7ac26",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "1215\n",
            "101.25\n",
            "93.5\n",
            "129\n",
            "84\n"
          ]
        }
      ],
      "source": [
        "print(calls_revenue.Calls.sum())\n",
        "print(calls_revenue.Calls.mean())\n",
        "print(calls_revenue.Calls.median())\n",
        "print(calls_revenue.Calls.max())\n",
        "print(calls_revenue.Calls.min())"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 38,
      "metadata": {
        "scrolled": true,
        "id": "w6KBDxF8sUIo",
        "outputId": "eb68f943-a731-48d8-946b-bd43e84d2058",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "  Team member  Territory  Month  Calls  Amount  Call_Amount\n",
            "0       Jorge          3      1    107   50876   475.476636\n",
            "1       Jorge          3      2     88   57682   655.477273\n",
            "2       Jorge          3      3     84   53689   639.154762\n",
            "4         Ana          1      1     91   54228   595.912088\n",
            "5         Ana          1      2    129   61640   477.829457\n",
            "9         Ali          2      2     85   44957   528.905882\n",
            "464.2539427570093\n"
          ]
        }
      ],
      "source": [
        "print(calls_revenue[calls_revenue.Call_Amount >= calls_revenue.Call_Amount.median()])\n",
        "print(calls_revenue.Call_Amount.median())\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 39,
      "metadata": {
        "id": "WrnO1ibFsUIo",
        "outputId": "43fe53dc-65d4-4b9e-9b38-2fbd1af108ec",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "       Calls  Amount\n",
            "Month               \n",
            "1        318  141165\n",
            "2        302  164279\n",
            "3        267  132238\n",
            "4        328  135201\n"
          ]
        }
      ],
      "source": [
        "print(calls_revenue[['Month', 'Calls', 'Amount']].groupby(['Month']).sum())"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 40,
      "metadata": {
        "scrolled": true,
        "id": "clwoF_LGsUIo",
        "outputId": "d7f8cda9-92fd-46eb-8f1d-9404e51e9a4e",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "           Calls  Amount\n",
            "Territory               \n",
            "1            444  211532\n",
            "2            379  149931\n",
            "3            392  211420\n"
          ]
        }
      ],
      "source": [
        "print(calls_revenue[['Territory', 'Calls', 'Amount']].groupby(['Territory']).sum())"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Try This: Grouping and Aggregating\n",
        "Experiment with pandas and the data in previous examples. Can you get the calls and amounts by both team member and month?\n"
      ],
      "metadata": {
        "id": "FurTUBOb_Xe7"
      }
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "bTDWk6vT_gVx"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# @title\n",
        "calls_revenue[['Team member','Month', 'Calls', 'Amount']].groupby(['Team member','Month']).sum()\n"
      ],
      "metadata": {
        "collapsed": true,
        "cellView": "form",
        "id": "-8Lo5JYw_geD",
        "outputId": "9bec8bbc-e97a-4c13-b2c6-54e39b3b22e4",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 457
        }
      },
      "execution_count": 36,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "                   Calls  Amount\n",
              "Team member Month               \n",
              "Ali         1        120   36061\n",
              "            2         85   44957\n",
              "            3         87   35058\n",
              "            4         87   33855\n",
              "Ana         1         91   54228\n",
              "            2        129   61640\n",
              "            3         96   43491\n",
              "            4        128   52173\n",
              "Jorge       1        107   50876\n",
              "            2         88   57682\n",
              "            3         84   53689\n",
              "            4        113   49173"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-a983c92c-5078-433a-9ec7-63f9ac05f9ce\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th>Calls</th>\n",
              "      <th>Amount</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Team member</th>\n",
              "      <th>Month</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th rowspan=\"4\" valign=\"top\">Ali</th>\n",
              "      <th>1</th>\n",
              "      <td>120</td>\n",
              "      <td>36061</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>85</td>\n",
              "      <td>44957</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>87</td>\n",
              "      <td>35058</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>87</td>\n",
              "      <td>33855</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th rowspan=\"4\" valign=\"top\">Ana</th>\n",
              "      <th>1</th>\n",
              "      <td>91</td>\n",
              "      <td>54228</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>129</td>\n",
              "      <td>61640</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>96</td>\n",
              "      <td>43491</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>128</td>\n",
              "      <td>52173</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th rowspan=\"4\" valign=\"top\">Jorge</th>\n",
              "      <th>1</th>\n",
              "      <td>107</td>\n",
              "      <td>50876</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>88</td>\n",
              "      <td>57682</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>84</td>\n",
              "      <td>53689</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>113</td>\n",
              "      <td>49173</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a983c92c-5078-433a-9ec7-63f9ac05f9ce')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-a983c92c-5078-433a-9ec7-63f9ac05f9ce button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-a983c92c-5078-433a-9ec7-63f9ac05f9ce');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "<div id=\"df-859eabda-9e8c-4d51-b9a7-cf7289f81222\">\n",
              "  <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-859eabda-9e8c-4d51-b9a7-cf7289f81222')\"\n",
              "            title=\"Suggest charts\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "     width=\"24px\">\n",
              "    <g>\n",
              "        <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
              "    </g>\n",
              "</svg>\n",
              "  </button>\n",
              "\n",
              "<style>\n",
              "  .colab-df-quickchart {\n",
              "      --bg-color: #E8F0FE;\n",
              "      --fill-color: #1967D2;\n",
              "      --hover-bg-color: #E2EBFA;\n",
              "      --hover-fill-color: #174EA6;\n",
              "      --disabled-fill-color: #AAA;\n",
              "      --disabled-bg-color: #DDD;\n",
              "  }\n",
              "\n",
              "  [theme=dark] .colab-df-quickchart {\n",
              "      --bg-color: #3B4455;\n",
              "      --fill-color: #D2E3FC;\n",
              "      --hover-bg-color: #434B5C;\n",
              "      --hover-fill-color: #FFFFFF;\n",
              "      --disabled-bg-color: #3B4455;\n",
              "      --disabled-fill-color: #666;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart {\n",
              "    background-color: var(--bg-color);\n",
              "    border: none;\n",
              "    border-radius: 50%;\n",
              "    cursor: pointer;\n",
              "    display: none;\n",
              "    fill: var(--fill-color);\n",
              "    height: 32px;\n",
              "    padding: 0;\n",
              "    width: 32px;\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart:hover {\n",
              "    background-color: var(--hover-bg-color);\n",
              "    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "    fill: var(--button-hover-fill-color);\n",
              "  }\n",
              "\n",
              "  .colab-df-quickchart-complete:disabled,\n",
              "  .colab-df-quickchart-complete:disabled:hover {\n",
              "    background-color: var(--disabled-bg-color);\n",
              "    fill: var(--disabled-fill-color);\n",
              "    box-shadow: none;\n",
              "  }\n",
              "\n",
              "  .colab-df-spinner {\n",
              "    border: 2px solid var(--fill-color);\n",
              "    border-color: transparent;\n",
              "    border-bottom-color: var(--fill-color);\n",
              "    animation:\n",
              "      spin 1s steps(1) infinite;\n",
              "  }\n",
              "\n",
              "  @keyframes spin {\n",
              "    0% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "      border-left-color: var(--fill-color);\n",
              "    }\n",
              "    20% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    30% {\n",
              "      border-color: transparent;\n",
              "      border-left-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    40% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-top-color: var(--fill-color);\n",
              "    }\n",
              "    60% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "    }\n",
              "    80% {\n",
              "      border-color: transparent;\n",
              "      border-right-color: var(--fill-color);\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "    90% {\n",
              "      border-color: transparent;\n",
              "      border-bottom-color: var(--fill-color);\n",
              "    }\n",
              "  }\n",
              "</style>\n",
              "\n",
              "  <script>\n",
              "    async function quickchart(key) {\n",
              "      const quickchartButtonEl =\n",
              "        document.querySelector('#' + key + ' button');\n",
              "      quickchartButtonEl.disabled = true;  // To prevent multiple clicks.\n",
              "      quickchartButtonEl.classList.add('colab-df-spinner');\n",
              "      try {\n",
              "        const charts = await google.colab.kernel.invokeFunction(\n",
              "            'suggestCharts', [key], {});\n",
              "      } catch (error) {\n",
              "        console.error('Error during call to suggestCharts:', error);\n",
              "      }\n",
              "      quickchartButtonEl.classList.remove('colab-df-spinner');\n",
              "      quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
              "    }\n",
              "    (() => {\n",
              "      let quickchartButtonEl =\n",
              "        document.querySelector('#df-859eabda-9e8c-4d51-b9a7-cf7289f81222 button');\n",
              "      quickchartButtonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "    })();\n",
              "  </script>\n",
              "</div>\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "summary": "{\n  \"name\": \"calls_revenue[['Team member','Month', 'Calls', 'Amount']]\",\n  \"rows\": 12,\n  \"fields\": [\n    {\n      \"column\": \"Calls\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 17,\n        \"min\": 84,\n        \"max\": 129,\n        \"num_unique_values\": 11,\n        \"samples\": [\n          96,\n          120,\n          84\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Amount\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 9129,\n        \"min\": 33855,\n        \"max\": 61640,\n        \"num_unique_values\": 12,\n        \"samples\": [\n          53689,\n          57682,\n          36061\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
            }
          },
          "metadata": {},
          "execution_count": 36
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# 24.5 Plotting data"
      ],
      "metadata": {
        "id": "6gwRNdi4N8zQ"
      }
    },
    {
      "cell_type": "code",
      "execution_count": 41,
      "metadata": {
        "scrolled": true,
        "id": "vIHDjN1XsUIo",
        "outputId": "87d2c13a-a75d-41ab-a66c-9ef0f778c6f9",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 461
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<Axes: xlabel='Territory'>"
            ]
          },
          "metadata": {},
          "execution_count": 41
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGrCAYAAADqwWxuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAg60lEQVR4nO3de3BU5cHH8d/mtjEhuzFoNqQkgKJCJFyECguOF0iJGBE0Y7XDYEDECoGKsaiZoYhcBkoVEA3gWEzQgjCOQgtVBKJglXALpYPcRAGTadjESpMAyiYk+/5h2bdbrpsL+2zy/czsDHvOs3ueE1by9ZyzuxaPx+MRAACAQUICPQEAAID/RaAAAADjECgAAMA4BAoAADAOgQIAAIxDoAAAAOMQKAAAwDhhgZ5AQ9TX16usrEwxMTGyWCyBng4AALgCHo9HJ0+eVGJiokJCLn2MJCgDpaysTElJSYGeBgAAaIDS0lK1b9/+kmOCMlBiYmIk/bSDNpstwLMBAABXorq6WklJSd7f45cSlIFy7rSOzWYjUAAACDJXcnkGF8kCAADjECgAAMA4BAoAADBOUF6DAgBAc6mrq1NtbW2gpxGUwsPDFRoa2iTPRaAAAKCfPqPD5XKpsrIy0FMJarGxsUpISGj055QRKAAASN44iY+PV1RUFB8E6iePx6MffvhBFRUVkqR27do16vkIFABAq1dXV+eNk7Zt2wZ6OkHrmmuukSRVVFQoPj6+Uad7uEgWANDqnbvmJCoqKsAzCX7nfoaNvY6HQAEA4D84rdN4TfUzJFAAAIBxCBQAAGAcLpIFAOAiOr7w16u6vWNzMq7q9s4pKCjQpEmTvG+xnjZtmtasWaM9e/YEZD4SR1AAAAh6LpdLEydO1A033CCr1aqkpCQNHTpUhYWFgZ5ag3EEBQCAIHbs2DENGDBAsbGx+sMf/qDU1FTV1tbq448/VnZ2tg4ePBjoKTYIR1AAAAhi48ePl8Vi0Y4dO5SZmambb75Zt956q3JycrRt2zZJ0rx585Samqro6GglJSVp/PjxOnXq1BVvY/Pmzbr99tsVHR2t2NhYDRgwQN9++21z7ZIkjqA0q6t97rIlC9R5WQAw2YkTJ7R+/XrNmjVL0dHR562PjY2VJIWEhGjhwoXq1KmTjhw5ovHjx+u5557TokWLLruNs2fPavjw4Ro7dqzeffdd1dTUaMeOHc3+lmwCBQCAIPX111/L4/GoS5culxw3adIk7587duyomTNn6qmnnrqiQKmurlZVVZXuv/9+3XjjjZKkrl27NmreV4JTPAAABCmPx3NF4zZt2qRBgwbpZz/7mWJiYjRy5Eh9//33+uGHHy772Li4OI0aNUrp6ekaOnSoXn31VR0/fryxU78sAgUAgCB10003yWKxXPJC2GPHjun+++9X9+7d9f7776u4uFh5eXmSpJqamivaTn5+voqKitS/f3+tWrVKN998s/f6luZCoAAAEKTi4uKUnp6uvLw8nT59+rz1lZWVKi4uVn19vV555RX169dPN998s8rKyvzeVq9evZSbm6utW7eqW7duWrFiRVPswkURKAAABLG8vDzV1dXp9ttv1/vvv6/Dhw/rwIEDWrhwoZxOpzp37qza2lq99tprOnLkiN555x0tWbLkip//6NGjys3NVVFRkb799ltt2LBBhw8fbvbrULhIFgCAiwiGdxDecMMN2r17t2bNmqVnn31Wx48f1/XXX6/evXtr8eLF6tGjh+bNm6ff//73ys3N1Z133qnZs2frscceu6Lnj4qK0sGDB7Vs2TJ9//33ateunbKzs/XrX/+6WffL4rnSK2wMUl1dLbvdrqqqKtlstkBP56J4m3HTCYZ/JAAErzNnzujo0aPq1KmTIiMjAz2doHapn6U/v785xQMAAIxDoAAAAOMQKAAAwDgECgAAMA6BAgDAf9TX1wd6CkGvqX6GvM0YANDqRUREKCQkRGVlZbr++usVERHR7F+G19J4PB7V1NTou+++U0hIiCIiIhr1fAQKAKDVCwkJUadOnXT8+PEGfcoq/l9UVJSSk5MVEtK4kzQECgAA+ukoSnJyss6ePau6urpATycohYaGKiwsrEmOPhEoAAD8h8ViUXh4uMLDwwM9lVaPi2QBAIBxCBQAAGAcAgUAABiHQAEAAMYhUAAAgHEIFAAAYBwCBQAAGIdAAQAAxiFQAACAcQgUAABgHAIFAAAYh0ABAADGIVAAAIBxCBQAAGCcRgXKnDlzZLFYNGnSJO+yM2fOKDs7W23btlWbNm2UmZmp8vJyn8eVlJQoIyNDUVFRio+P1+TJk3X27NnGTAUAALQgDQ6UnTt36o033lD37t19lj/zzDNau3at3nvvPW3ZskVlZWV66KGHvOvr6uqUkZGhmpoabd26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OnSo7rrrLn311VcBnB1aK4vFIumn/6mLjIyU3W73rouJiVFVVVWgptaqECitSO/evVVcXHzR9Zc7ugI0tS5dumjXrl3nLX/99dc1bNgwPfDAAwGYFVqzjh076vDhw977RUVFSk5O9t4vKSnxXiOF5kWgtCKTJ09W//79L7q+c+fO+vTTT6/ijNDaPfjgg3r33XcvuO7111/Xr371K6IZV9W4ceN8Til269bN5yjfRx99xAWyVwnXoAAAAONwBAUAABiHQAEAAMYhUAAAgHEIFAAAYBwCBYAxOnbsqAULFgR6GgAMQKAAuCSLxXLJ27Rp05psWzt37tSTTz7ps+01a9Y02fMDCB5hlx8CoDU7fvy498+rVq3S1KlTdejQIe+yNm3a+PV8tbW1Cg8P91lWU1OjiIgIXX/99Y2brB/bBGA2jqAAuKSEhATvzW63y2Kx+CxbuXKlunbtqsjISHXp0kWLFi3yPvbYsWOyWCxatWqV7rrrLkVGRmr58uUaNWqUhg8frlmzZikxMVG33HKLJN9TPB07dpT004e5WSwW731JWrx4sW688UZFRETolltu0TvvvOMz53Mfmf/AAw8oOjpaM2fOVOfOnfXyyy/7jNuzZ48sFou+/vrrpv/BAWgUjqAAaLDly5dr6tSpev3119WrVy/9/e9/19ixYxUdHa2srCzvuBdeeEGvvPKKevXqpcjISG3evFmFhYWy2WzauHHjBZ97586dio+PV35+vu69916FhoZKklavXq2nn35aCxYsUFpamtatW6fRo0erffv2uueee7yPnzZtmubMmaMFCxYoLCxMVqtV+fn5+u1vf+sdk5+frzvvvFOdO3dupp8QgAbzAMAVys/P99jtdu/9G2+80bNixQqfMTNmzPA4nU6Px+PxHD161CPJs2DBAp8xWVlZHofD4XG73T7LO3To4Jk/f773viTP6tWrfcb079/fM3bsWJ9lDz/8sOe+++7zedykSZN8xvzzn//0hIaGerZv3+7xeDyempoaz3XXXecpKCi4/I4DuOo4xQOgQU6fPq1vvvlGY8aMUZs2bby3mTNn6ptvvvEZ26dPn/Men5qaqoiICL+3e+DAAQ0YMMBn2YABA3TgwIFLbjMxMVEZGRl66623JElr166V2+3Www8/7PccADQ/TvEAaJBTp05Jkt5880317dvXZ9250zHnREdHn/f4Cy1rShd6/ieeeEIjR47U/PnzlZ+fr0ceeURRUVHNOg8ADUOgAGgQh8OhxMREHTlyRCNGjGiWbYSHh/t8s6wkde3aVV988YXPNS5ffPGFUlJSLvt89913n6Kjo7V48WKtX79en332WZPPGUDTIFAANNhLL72k3/zmN7Lb7br33nvldru1a9cu/fvf/1ZOTk6jn79jx44qLCzUgAEDZLVade2112ry5Mn65S9/qV69eiktLU1r167VBx98oE2bNl32+UJDQzVq1Cjl5ubqpptuktPpbPQcATQPrkEB0GBPPPGE/vjHPyo/P1+pqam66667VFBQoE6dOjXJ87/yyivauHGjkpKS1KtXL0nS8OHD9eqrr+rll1/WrbfeqjfeeEP5+fm6++67r+g5x4wZo5qaGo0ePbpJ5gigeVg8Ho8n0JMAgKvlb3/7mwYNGqTS0lI5HI5ATwfARRAoAFoFt9ut7777TllZWUpISNDy5csDPSUAl8ApHgCtwrvvvqsOHTqosrJSc+fODfR0AFwGR1AAAIBxOIICAACMQ6AAAADjECgAAMA4BAoAADAOgQIAAIxDoAAAAOMQKAAAwDgECgAAMM7/AZ6FrFzynjj+AAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "calls_revenue[['Territory', 'Calls']].groupby(['Territory']).sum().plot.bar()"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Try this: Plotting\n",
        "\n",
        "Plot a line graph of the monthly average amount per call."
      ],
      "metadata": {
        "id": "Eb98S9z2OS95"
      }
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "_PHXSUDv_0op"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "execution_count": 42,
      "metadata": {
        "id": "88wiHgVmsUIp",
        "outputId": "ef29591c-d4ab-4b68-c32a-9b0139eee160",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 469
        },
        "collapsed": true,
        "cellView": "form"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<Axes: xlabel='Month'>"
            ]
          },
          "metadata": {},
          "execution_count": 42
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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Q/Hw8Lhg/vnjSsxmM1OmTCEuLo65c+eyZs0aXnjhhdLaXPz8889kZmbStWtXBg4cyPz58zl79uwFy40dO5aXX36ZLVu2YLVauf/++3nhhRf44IMP+N///se+fft45ZVXCpf/4IMPeOedd5g8eTLbtm2je/fu3HHHHezdu7dE+TIzM5k8eTKfffYZv/76K0eOHOH5558HCq4m37dv38LScvz4cTp16nR1G+QyrupePCJyed/GJLBq5wmcLCZCg3yIiU/hwVm/M+HuMO5trztyS8V3Ljef0FdWGPLaO8Z3x925eB9j+/btw26306xZs8suN3LkyMKf69Wrx+uvv86TTz7Jhx9+eDVRC3366af069cPi8VCy5YtadCgAQsXLuShhx4qstzzzz9P9+7dARgxYgT9+/dn9erVdO7cGYDBgwczZ86cwuUnT57Miy++SL9+/QCYOHEiP//8M++//z7Tpk0rdr7c3FxmzJhReAX4YcOGMX78eAA8PT1xc3MjOzv7sjf4LS36BkWkjCSlZzH22zgAnr6lMQueuJY7WweRZ7MzatE23l25p0R/AYrIlSvu/2urVq2iS5cu1K5dGy8vLwYNGsTp06fJzMy86gwpKSksXryYgQMHFj42cODAC4Z5AMLDwwt/DggIACAsLKzIY+cvKZ+WlkZCQkJheTmvc+fO7Ny5s0QZ3d3di9yeplatWoWvU970DYpIGbDb7fx76XZSMnNpEeTNkzc1xMli5v37WhNS3Z2pa/YxZfVejiZn8lafcJyt+ltBKiY3Jws7xnc37LWLq3HjxphMJnbt2nXJZQ4dOkSvXr146qmneOONN6hevTq//fYbgwcPJicnp/AKqVfqyy+/JCsri44dOxY+Zrfbsdls7NmzhyZNmhQ+7uTkVPjz+Quf/f2xktys8fw9k/5a1C52pde/vsb51zHqDyn9qyhSBpZtO86KuBNYzSbevqcVTpaC/9VMJhPPdWvKxD5hWMwmFm89xgOzNpKaeXWXhBYxislkwt3ZashUkiuWVq9ene7duzNt2rSLHvORkpLC5s2bsdlsvPPOO1x77bU0adKEhISEUttWn376Kc899xzR0dGFU0xMDNdffz2zZs264vV6e3sTFBTEunXrijy+bt06QkNDAQpv6nv+gFcoOEi2pJydnQtvd1DWVFBEStmpjGxe+WY7AMNuaURo0IU3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TycoKAiz+fJHmVTIb1DMZjN16tQp09fw9vbWTlxM2lbFp21VfNpWxadtVXzaViVTFtvrn745OU8HyYqIiIjDUUERERERh6OC8jcuLi6MHTsWFxcXo6M4PG2r4tO2Kj5tq+LTtio+bauScYTtVSEPkhUREZHKTd+giIiIiMNRQRERERGHo4IiIiIiDkcFRURERBxOlSoov/76K7fffjtBQUGYTCaWLl36j8/55ZdfaNu2LS4uLjRq1Ig5c+aUeU5HUNJt9csvv2AymS6YEhMTyyewgSZMmMA111yDl5cX/v7+3HXXXezevfsfn7dw4UKaNWuGq6srYWFh/PDDD+WQ1lhXsq3mzJlzwX7l6upaTomNM336dMLDwwsvlBUREcGPP/542edUxX3qvJJur6q6X/3dW2+9hclkYuTIkZddzoh9q0oVlLNnz9KqVSumTZtWrOUPHjxIZGQkN998M9HR0YwcOZJHH32UFStWlHFS45V0W523e/dujh8/Xjj5+/uXUULHsXbtWoYOHcqGDRtYuXIlubm5dOvWjbNnz17yOevXr6d///4MHjyYrVu3ctddd3HXXXexffv2ckxe/q5kW0HB1Sz/ul8dPny4nBIbp06dOrz11lts3ryZP/74g1tuuYU777yTuLi4iy5fVfep80q6vaBq7ld/tWnTJmbOnEl4ePhllzNs37JXUYB9yZIll13mhRdesLdo0aLIY/fdd5+9e/fuZZjM8RRnW/388892wH7mzJlyyeTIkpKS7IB97dq1l1ymb9++9sjIyCKPdezY0f7EE0+UdTyHUpxtNXv2bLuPj0/5hXJg1apVs3/yyScXnad96kKX215Vfb9KT0+3N27c2L5y5Ur7jTfeaB8xYsQllzVq36pS36CUVFRUFF27di3yWPfu3YmKijIokeNr3bo1tWrV4tZbb2XdunVGxzFEamoqANWrV7/kMtq3ChRnWwFkZGRQt25dgoOD//Gv4sooPz+f+fPnc/bsWSIiIi66jPap/1ec7QVVe78aOnQokZGRF+wzF2PUvlUhbxZYXhITEwkICCjyWEBAAGlpaZw7dw43NzeDkjmeWrVqMWPGDNq3b092djaffPIJN910Exs3bqRt27ZGxys3NpuNkSNH0rlzZ1q2bHnJ5S61b1WFY3bOK+62atq0KbNmzSI8PJzU1FQmT55Mp06diIuLK/ObhhotNjaWiIgIsrKy8PT0ZMmSJYSGhl50We1TJdteVXm/mj9/Plu2bGHTpk3FWt6ofUsFRUpF06ZNadq0aeHvnTp1Yv/+/bz33nt89tlnBiYrX0OHDmX79u389ttvRkdxeMXdVhEREUX+Cu7UqRPNmzdn5syZvPbaa2Ud01BNmzYlOjqa1NRUFi1axIMPPsjatWsv+aFb1ZVke1XV/So+Pp4RI0awcuVKhz8oWAXlMgIDAzlx4kSRx06cOIG3t7e+PSmGDh06VKkP6mHDhrFs2TJ+/fXXf/wL7FL7VmBgYFlGdBgl2VZ/5+TkRJs2bdi3b18ZpXMczs7ONGrUCIB27dqxadMmPvjgA2bOnHnBslV9n4KSba+/qyr71ebNm0lKSiryzXZ+fj6//vor//nPf8jOzsZisRR5jlH7lo5BuYyIiAhWr15d5LGVK1dedkxT/l90dDS1atUyOkaZs9vtDBs2jCVLlrBmzRrq16//j8+pqvvWlWyrv8vPzyc2NrZK7Ft/Z7PZyM7Ovui8qrpPXc7lttffVZX9qkuXLsTGxhIdHV04tW/fngEDBhAdHX1BOQED960yPQTXwaSnp9u3bt1q37p1qx2wv/vuu/atW7faDx8+bLfb7fbRo0fbBw0aVLj8gQMH7O7u7vZRo0bZd+7caZ82bZrdYrHYly9fbtRbKDcl3VbvvfeefenSpfa9e/faY2Nj7SNGjLCbzWb7qlWrjHoL5eapp56y+/j42H/55Rf78ePHC6fMzMzCZQYNGmQfPXp04e/r1q2zW61W++TJk+07d+60jx071u7k5GSPjY014i2UmyvZVq+++qp9xYoV9v3799s3b95s79evn93V1dUeFxdnxFsoN6NHj7avXbvWfvDgQfu2bdvso0ePtptMJvtPP/1kt9u1T/1dSbdXVd2vLubvZ/E4yr5VpQrK+VNh/z49+OCDdrvdbn/wwQftN9544wXPad26td3Z2dneoEED++zZs8s9txFKuq0mTpxob9iwod3V1dVevXp1+0033WRfs2aNMeHL2cW2E1BkX7nxxhsLt915CxYssDdp0sTu7Oxsb9Gihf37778v3+AGuJJtNXLkSHtISIjd2dnZHhAQYL/tttvsW7ZsKf/w5eyRRx6x161b1+7s7Gz38/Ozd+nSpfDD1m7XPvV3Jd1eVXW/upi/FxRH2bdMdrvdXrbf0YiIiIiUjI5BEREREYejgiIiIiIORwVFREREHI4KioiIiDgcFRQRERFxOCooIiIi4nBUUERERMThqKCISKVhMplYunSp0TFEpBSooIjIVXvooYcwmUw8+eSTF8wbOnQoJpOJhx56qNReb9y4cbRu3brU1icijkcFRURKRXBwMPPnz+fcuXOFj2VlZfHll18SEhJiYDIRqYhUUESkVLRt25bg4GAWL15c+NjixYsJCQmhTZs2hY9lZ2fz9NNP4+/vj6urK9dddx2bNm0qnP/LL79gMplYvXo17du3x93dnU6dOrF7924A5syZw6uvvkpMTAwmkwmTycScOXMKn3/q1Cl69+6Nu7s7jRs35ttvvy37Ny8ipU4FRURKzSOPPMLs2bMLf581axYPP/xwkWVeeOEFvv76a+bOncuWLVto1KgR3bt3Jzk5uchyL730Eu+88w5//PEHVquVRx55BID77ruP5557jhYtWnD8+HGOHz/OfffdV/i8V199lb59+7Jt2zZuu+02BgwYcMG6RcTxqaCISKkZOHAgv/32G4cPH+bw4cOsW7eOgQMHFs4/e/Ys06dP5+2336Znz56Ehoby8ccf4+bmxqefflpkXW+88QY33ngjoaGhjB49mvXr15OVlYWbmxuenp5YrVYCAwMJDAzEzc2t8HkPPfQQ/fv3p1GjRrz55ptkZGTw+++/l9s2EJHSYTU6gIhUHn5+fkRGRjJnzhzsdjuRkZHUrFmzcP7+/fvJzc2lc+fOhY85OTnRoUMHdu7cWWRd4eHhhT/XqlULgKSkpH88nuWvz/Pw8MDb25ukpKSrel8iUv5UUESkVD3yyCMMGzYMgGnTpl3xepycnAp/NplMANhsthI97/xzi/M8EXEsGuIRkVLVo0cPcnJyyM3NpXv37kXmNWzYEGdnZ9atW1f4WG5uLps2bSI0NLTYr+Hs7Ex+fn6pZRYRx6NvUESkVFkslsLhGovFUmSeh4cHTz31FKNGjaJ69eqEhIQwadIkMjMzGTx4cLFfo169ehw8eJDo6Gjq1KmDl5cXLi4upfo+RMRYKigiUuq8vb0vOe+tt97CZrMxaNAg0tPTad++PStWrKBatWrFXn+fPn1YvHgxN998MykpKcyePbtULwQnIsYz2e12u9EhRERERP5Kx6CIiIiIw1FBEREREYejgiIiIiIORwVFREREHI4KioiIiDgcFRQRERFxOCooIiIi4nBUUERERMThqKCIiIiIw1FBEREREYejgiIiIiIORwVFREREHM7/AfxmbAICCZYlAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "# @title\n",
        "calls_revenue[['Month', 'Call_Amount']].groupby(['Month']).mean().plot()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "collapsed": true,
        "id": "BS_WCCaIsUIp"
      },
      "outputs": [],
      "source": []
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.5.3"
    },
    "toc": {
      "nav_menu": {},
      "number_sections": true,
      "sideBar": true,
      "skip_h1_title": false,
      "toc_cell": false,
      "toc_position": {},
      "toc_section_display": "block",
      "toc_window_display": false
    },
    "colab": {
      "provenance": [],
      "include_colab_link": true
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}